Page({
  data: {
    iconList: [],
    taskList: [], // 任务数据列表
    currentTab: 0,
    showModal: false, // 弹窗显示状态
    currentTask: {}, // 当前选中的任务数据
    pageNo: 1, // 当前页码
    pageSize: 5, // 每页条数
    totalCount: 0, // 总条数
    totalPageCount: 0, // 总页数
    currentTaskIndex: -1 // 当前任务在列表中的索引
  },

  onLoad(options) {
    this.getTaskData();
  },

  // 获取任务数据（适配嵌套数据结构）
  getTaskData() {
    const userInfo = wx.getStorageSync('userInfo');
    wx.showLoading({ title: '加载中...' });
    wx.request({
      url: 'http://localhost:8080/orders/list',
      method: 'GET',
      data: { 
        pageNo: this.data.pageNo, 
        pageSize: this.data.pageSize,
        orderStatus: 1 // 只获取待接单任务
      },
      success: (res) => {
        wx.hideLoading();
        if (res.data.code === 200 && res.data.data && res.data.data.code === 200) {
          const responseData = res.data.data.data;
          this.setData({
            taskList: responseData.dataList || [],
            totalCount: responseData.totalCount || 0,
            totalPageCount: responseData.totalPageCount || 0,
            pageNo: responseData.pageNo || 1
          });
        } else {
          wx.showToast({ 
            title: res.data.msg || '数据获取失败', 
            icon: 'none' 
          });
        }
      },
      fail: (err) => {
        wx.hideLoading();
        console.error('请求失败:', err);
        wx.showToast({ title: '网络错误', icon: 'none' });
      }
    });
  },

  // 切换标签页
  switchTab(e) {
    const index = e.currentTarget.dataset.index;
    this.setData({ 
      currentTab: index,
      pageNo: 1 
    });
  },

  // 上一页
  prevPage() {
    if (this.data.pageNo > 1) {
      this.setData({ pageNo: this.data.pageNo - 1 }, () => {
        this.getTaskData();
      });
    }
  },

  // 下一页
  nextPage() {
    if (this.data.pageNo < this.data.totalPageCount) {
      this.setData({ pageNo: this.data.pageNo + 1 }, () => {
        this.getTaskData();
      });
    }
  },

  // 获取订单状态文本
  getStatusText(status) {
    switch(status) {
      case 0: return "未接单";
      case 1: return "进行中";
      case 2: return "已完成";
      case 3: return "已取消";
      default: return "未知状态";
    }
  },

  // 获取列表状态样式
  getStatusClass(status) {
    switch(status) {
      case 0: return "status-pending";
      case 1: return "status-progress";
      case 2: return "status-completed";
      case 3: return "status-canceled";
      default: return "";
    }
  },

  // 获取弹窗状态样式
  getModalStatusClass(status) {
    return this.getStatusClass(status);
  },

  // 打开任务详情弹窗
  openTaskModal(e) {
    const index = e.currentTarget.dataset.index;
    const task = this.data.taskList[index];
    this.setData({
      currentTask: task,
      currentTaskIndex: index,
      showModal: true
    });
  },

  // 点击弹窗背景关闭弹窗
  closeModalByBackground() {
    this.setData({ showModal: false });
  },

  // 阻止弹窗内容的事件冒泡
  stopPropagation() {},

  // 接单操作方法（核心修改：添加nurse_id）
  acceptTask() {
    // 1. 获取当前登录的护工信息（包含nurse_id）
    const userInfo = wx.getStorageSync('userInfo');
    const nurseId = userInfo?.nurseId; // 从userInfo中获取nurse_id
    // 2. 获取任务ID
    const taskId = this.data.currentTask?.orderId;
    
    // 验证必要参数
    if (!nurseId) {
      wx.showToast({ title: '未获取到护工信息', icon: 'none' });
      return;
    }
    if (!taskId) {
      wx.showToast({ title: '任务ID获取失败', icon: 'none' });
      return;
    }

    wx.showLoading({ title: '处理中...' });
    wx.request({
      url: 'http://localhost:8080/orders/update',
      method: 'PUT',
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      data: {
        orderId: taskId,         // 订单ID
        orderStatus: 2,          // 接单后状态改为“进行中”
        nurseId: nurseId         // 新增：当前护工的nurse_id
      },
      success: (res) => {
        wx.hideLoading();
        if (res.data.code === 200) {
          wx.showToast({ 
            title: '接单成功', 
            icon: 'success',
            duration: 1500 
          });

          setTimeout(() => {
            this.setData({ showModal: false });
            this.setData({ pageNo: 1 }, () => {
              this.getTaskData();
            });
          }, 1500);
        } else {
          wx.showToast({ 
            title: res.data.msg || '接单失败', 
            icon: 'none' 
          });
        }
      },
      fail: (err) => {
        wx.hideLoading();
        console.error('接单请求失败:', err);
        wx.showToast({ title: '网络错误', icon: 'none' });
      }
    });
  },

  /**
   * 生命周期函数
   */
  onReady() {},
  onShow() {},
  onHide() {},
  onUnload() {},
  onPullDownRefresh() {
    this.setData({ pageNo: 1 }, () => {
      this.getTaskData(() => {
        wx.stopPullDownRefresh();
      });
    });
  },
  onReachBottom() {
    if (this.data.pageNo < this.data.totalPageCount) {
      this.nextPage();
    }
  },
  onShareAppMessage() {}
});